package com.hym.myobserve4;

import java.util.ArrayList;
import java.util.List;


/**
 * 韩非子类，继承韩非子接口，添加两个标示状态的属性
 **/
public class HanFeiZi implements IObservable,IHanFeiZi {

	// 为了让李斯的对象不是随着HanFeiZi对象的创建而创建，所以不能直接创建对象
	// 而是在李斯对象在实际业务中被创建的时候，让韩非子对象才真正持有李斯对象
	// 所以使用全部变量和set方法实现
	// private ILisi lisi=new LiSi();
	List<IObserver> mIObservers= new ArrayList<IObserver>();

	@Override
	public void haveBreakfast(int time) {
		System.out.println("韩非子：开始吃饭啦"+time);
		notifyObsevers("吃饭");
			
	}

	@Override
	public void haveFun(int time) {
		System.out.println("韩非子：开始娱乐了"+time);
		notifyObsevers("娱乐");
	}
	/**
	 * 添加了把妹的新能力，如果把妹能力通用，可以提到接口中去
	 */
	public void baMeizi(){
		System.out.println("韩非子正在把妹");
		notifyObsevers("韩非子正在把妹");
	}

	@Override
	public void addObsever(IObserver iObserver) {
		mIObservers.add(iObserver);
	}

	@Override
	public void deleteObsever(IObserver iObserver) {
		mIObservers.remove(iObserver);
		
	}

	@Override
	public void notifyObsevers(String context) {
		if (mIObservers != null&&mIObservers.size()>0){
			for (IObserver iObserver : mIObservers) {
				iObserver.update("韩非子在"+context);
			}
		}
		
	}

}
